package com.eyaomall.wxmanage.common.error;

import com.lycheeframework.core.cmp.api.error.IECode;
import com.lycheeframework.core.common.util.StringUtil;
import com.lycheeframework.core.cmp.api.annotation.Error;

public enum BECode implements IECode{
	/**
	 * 评价
	 */
	@Error(msg="订单ID为空")
	eval_600000(600000),
	
	/**
	 * 授权
	 */
	@Error(msg="apiKey或secretKey为空！")
	oauth_300000(300000), 
	@Error(msg="apiKey或secretKey已过期！")
	oauth_30001(300001), 
	
	/**
	 * 短信
	 */
	@Error(msg="发送短信失败！")
	sms_301000(301000), 
	@Error(msg="手机或短信内容为空！")
	sms_301001(301001), 
	@Error(msg="发送短信过于频繁，请稍后再试！")
	sms_301002(301002), 
	@Error(msg="今日短信次数超过上限！")
	sms_301003(301003), 
	@Error(msg="短信验证码已过期！")
	sms_301004(301004), 
	@Error(msg="短信验证码不存在！")
	sms_301005(301005),
	@Error(msg="短信验证码不能为空！")
	sms_301006(301006),
	
	/**
	 * 会员
	 */
	@Error(msg="账号不能为空！")
	member_302000(302000), 
	@Error(msg="手机号码不能为空或者格式不正确！")
	member_302001(302001), 
	@Error(msg="邮箱不能为空或者邮箱格式不正确！")
	member_302002(302002), 
	@Error(msg="账号已经被注册，请更换后重试！")
	member_302003(302002), 
	@Error(msg="手机号码已经被注册，请更换后重试！")
	member_302004(302004), 
	@Error(msg="邮箱已经被注册，请更换后重试！")
	member_302005(302005), 
	@Error(msg="账号或密码不能为空！")
	member_302006(302006),
	@Error(msg="旧密码不正确，请重试！")
	member_302007(302007),
	@Error(msg="密码不能为空，请重试！")
	member_302008(302008),
	@Error(msg="密码不能30个字！")
	member_302009(302009),
	@Error(msg="会员不存在！")
	member_302010(302010),
	@Error(msg="验证码不能为空！")
	member_302011(302011),
	@Error(msg="验证码不能为空！")
	member_302012(302011),
	@Error(msg="请完善公司信息后重试！")
	member_302013(302013),
	@Error(msg="邀请码不能为空！")
	member_302014(302014),
	@Error(msg="密码必须包含数字和大小写字母！")
	member_302015(302015),

	@Error(msg="账号类型不能为空！")
	company_303000(303000), 
	@Error(msg="企业类型不能为空！")
	company_303001(303001),
	@Error(msg="企业名称不能为空！")
	company_303002(303002),
	@Error(msg="企业名称不能大于30个字！")
	company_303003(303003),
	@Error(msg="企业法人不能为空！")
	company_303004(303004),
	@Error(msg="企业法人不能10个字！")
	company_303005(303005),
	@Error(msg="企业注册地不能为空！")
	company_303006(303006),
	@Error(msg="企业注册地长度不能大于20！")
	company_303007(303007),
	@Error(msg="企业法人联系方式不能为空！")
	company_303008(303008),
	@Error(msg="企业法人联系方式格式不正确！")
	company_303009(303009),
	@Error(msg="企业经营范围不能为空！")
	company_303010(303010),
	@Error(msg="收货地址不能为空！")
	company_303011(303011),
	@Error(msg="收货人不能为空！")
	company_303012(303012),
	@Error(msg="收货人不能大于10个字！")
	company_303013(303013),
	@Error(msg="收货人手机不能为空！")
	company_303014(303014),
	@Error(msg="收货人手机格式不正确！")
	company_303015(303015),
	@Error(msg="公司信息尚处于审核状态，不能进行操作！")
	company_303016(303016),
	@Error(msg="不能删除默认收货地址或地址不存在")
	company_303017(303017),
	@Error(msg="发票标题不能为空")
	company_303018(303018),
	@Error(msg="发票标题不能大于30个字")
	company_303019(303019),
	@Error(msg="纳税人识别码不能为空")
	company_303020(303020),
	@Error(msg="纳纳税人识别码不能大于20位")
	company_303021(303021),
	@Error(msg="开户银行名称不能为空")
	company_303022(303022),
	@Error(msg="开户银行名称不能大于30个字")
	company_303023(303023),
	@Error(msg="开户银行账号不能为空")
	company_303024(303024),
	@Error(msg="开户银行账号不能大于30个字")
	company_303025(303025),
	
	/*goods_collect*/
	@Error(msg="商品丢失，收藏失败！")
	goods_collect_304001(304001),
	@Error(msg="商品丢失，删除失败！")
	goods_collect_304002(304002),
	@Error(msg="商品不在准售区域内！")
	goods_collect_304003(304003),
	
	/*shopping_chart*/
	@Error(msg="商品或数量丢失，加入购物车失败！")
	shopping_cart_305001(305001),
	@Error(msg="商品丢失，购物车删除失败！")
	shopping_cart_305002(305002),
	@Error(msg="库存数量不足，购物车加入失败！")
	shopping_cart_305003(305003),
	@Error(msg="供货商不允许购买自己发布的商品！")
	shopping_cart_305004(305004),
	
	@Error(msg="优惠券活动标题不能为空")
	shopping_coupon_306001(306001),
	@Error(msg="优惠券活动标题不能大于15个字")
	shopping_coupon_306002(306002),
	@Error(msg="优惠券单张面值不能为空")
	shopping_coupon_306003(306003),
	@Error(msg="优惠券活动开始日期不能为空")
	shopping_coupon_306004(306004),
	@Error(msg="优惠券活动结束日期不能为空")
	shopping_coupon_306005(306005),
	@Error(msg="优惠券发行数量不能为空")
	shopping_coupon_306006(306006),
	@Error(msg="优惠券单张使用限额不能为空")
	shopping_coupon_306007(306007),
	@Error(msg="优惠券开始使用日期不能大于结束日期")
	shopping_coupon_306008(306008),
	@Error(msg="优惠券使用截止日期不能小于当前日期")
	shopping_coupon_306009(306009),
	
	/**/
	@Error(msg="商品丢失，上下架失败！")
	goods_operation_306001(306001),
	@Error(msg="商品丢失，删除失败！")
	goods_operation_306002(306002),
	@Error(msg="商品丢失，推荐操作失败！")
	goods_operation_306003(306003),
	@Error(msg="更新商品销售数量失败！")
	goods_operation_306004(306004),
	@Error(msg="商品不在经营范围内，不可购买！")
	goods_operation_306010(306010),
	@Error(msg="商品还未通过审核，不可购买！")
	goods_operation_306011(306011),
	@Error(msg="商品还未上架，不可购买！")
	goods_operation_306012(306012),
	@Error(msg="您不在联采会员名单内，不可购买！")
	goods_operation_306013(306013),
	@Error(msg="推荐商品达到上限，上限为8个！")
	goods_operation_306014(306014),
	
	/*goods-edit*/
	@Error(msg="药品库不存在！")
	goods_edit_314000(314000),
	
	/*shopping_chart*/
	@Error(msg="采购计划标题不为空！")
	plan_306001(306001),
	@Error(msg="采购计划说明不能大于200个字！")
	plan_306002(306002),
	@Error(msg="采购计划标题不能大于20个字！")
	plan_306003(306003),
	@Error(msg="采购计划说明不能大于120个字！")
	plan_306004(306004),
	@Error(msg="提醒人手机号码格式不正确！")
	plan_306005(306005),
	@Error(msg="采购计划商品信息参数不正确！")
	plan_306006(306006),
	@Error(msg="采购计划商品ID不能为空！")
	plan_306007(306007),
	@Error(msg="采购计划不存在！")
	plan_306008(306008),
	@Error(msg="产品不存在不存在！")
	plan_306009(306009),
	@Error(msg="网点产品库存不足！")
	plan_306010(306010),
	@Error(msg="采购计划参数不正确！")
	plan_306011(306011),
	@Error(msg="提醒时间必须要大于当前时间！")
	plan_306012(306012),
	/*shopping_chart*/
	@Error(msg="商品或数量丢失，加入采购计划失败！")
	plan_306013(306013),
	@Error(msg="商品丢失，采购计划删除失败！")
	plan_306014(306014),
	@Error(msg="库存数量不足，采购加入失败！")
	plan_306015(306015),
	
	/*drug*/
	@Error(msg="该批号药品已存在！")
	plan_307001(307001),
	@Error(msg="请选择品种！")
	plan_307002(307002),
	@Error(msg="该批号药品不存在，更新失败！")
	plan_307003(307003),
	/*供应商*/
	@Error(msg="请选择店铺")
	supplier_308001(308001),
	
	
	/*店铺*/
	@Error(msg="请选择公告")
	shop_309001(309001),
	@Error(msg="该店铺无关联网点")
	shop_309002(309002),
	@Error(msg="店铺被冻结，上下架失败！")
	shop_309003(309003),
	@Error(msg="店铺账号不存在！")
	shop_309004(309004),

	/*订单*/
	@Error(msg="商品列表为空")
	order_310001(310001),
	@Error(msg="该城市无网点")
	order_310002(310002),
	@Error(msg="创建订单商品失败")
	order_310003(310003),
	@Error(msg="更新订单退货数量失败")
	order_310004(310004),
	@Error(msg="该订单已创建申诉")
	order_310005(310005),
	@Error(msg="更新订单发货数量失败")
	order_310006(310006),
	@Error(msg="订单id不能为空")
	order_310007(310007),
	@Error(msg="创建订单失败")
	order_310008(310008),
	@Error(msg="更新订单状态失败")
	order_310009(310009),
	@Error(msg="订单商品库存不足")
	order_310010(310010),
	@Error(msg="更新订单商品库存失败")
	order_310011(310011),
	@Error(msg="订单不存在")
	order_310012(310012),
	@Error(msg="生成支付订单失败")
	order_310013(310013),
	@Error(msg="支付订单找不到")
	order_310014(310014),
	@Error(msg="生成结算订单失败")
	order_310015(310015),
	@Error(msg="该订单已结算过了")
	order_310016(310016),
	@Error(msg="生成退款订单失败")
	order_310017(310017),
	@Error(msg="该订单已退款")
	order_310018(310018),
	@Error(msg="结算订单找不到")
	order_310019(310019),
	@Error(msg="还有未完成的退货单")
	order_310020(310020),
	@Error(msg="请勿重复下单")
	order_310021(310021),
	

	/*退货单*/
	@Error(msg="创建退货单失败")
	return_311001(311001),
	@Error(msg="退货单无相关商品")
	return_311002(311002),
	@Error(msg="退货数量超出采购数量")
	return_311003(311003),
	@Error(msg="创建退货商品失败")
	return_311004(311004),
	@Error(msg="更新退货单状态失败")
	return_311005(311005),

	/*发货单*/
	@Error(msg="创建发货单失败")
	consignment_312001(312001),
	@Error(msg="发货单无相关商品")
	consignment_312002(312002),
	@Error(msg="发货数量超出采购数量")
	consignment_312003(312003),
	@Error(msg="创建发货商品失败")
	consignment_312004(312004),
	
	/*招商管理*/
	@Error(msg="商品名不能为空或者大于64个字")
	merchants_313001(313001),
	@Error(msg="通用名不能为空或者大于32个字")
	merchants_313002(313002),
	@Error(msg="生产厂家不能为空或者大于64个字")
	merchants_313003(313003),
	@Error(msg="品牌不能为空或者大于64个字")
	merchants_313004(313004),
	@Error(msg="剂型资源文件不能为空")
	merchants_313005(313005),
	@Error(msg="规格不能为空或者大于32个字")
	merchants_313006(313006),
	@Error(msg="建议零售价不能为空")
	merchants_313007(313007),
	@Error(msg="招商详情不能为空")
	merchants_313008(313008),
	@Error(msg="限定区域不能为空或者大于256个字")
	merchants_313009(313009),
	@Error(msg="最少上传一张图片")
	merchants_313010(313010),
	@Error(msg="招商详情不存在")
	merchants_313011(313011),
	@Error(msg="剂型资源名称不能为空")
	merchants_313012(313012),
	@Error(msg="批准文号不能大于16个字")
	merchants_313013(313013),
	
	/*求购管理*/
	@Error(msg="商品名称不能为空或者大于64个字")
	buying_lead_314001(314001),
	@Error(msg="生产厂家不能为空或者大于32个字")
	buying_lead_314002(314002),
	@Error(msg="必须选择省份")
	buying_lead_314003(314003),
	@Error(msg="省份名不能为空或者大于32个字")
	buying_lead_314004(314004),
	@Error(msg="必须选择城市")
	buying_lead_314005(314005),
	@Error(msg="城市名称不能为空或者大于32个字")
	buying_lead_314006(314006),
	@Error(msg="联系人不能为空或者大于32个字")
	buying_lead_314007(314007),
	@Error(msg="联系电话不能为空或者电话格式不正确")
	buying_lead_314008(314008),
	@Error(msg="联系单位不能为空或者大于32个字")
	buying_lead_314009(314009),
	@Error(msg="备注不能为空或者大于32个字")
	buying_lead_314010(314010),
	@Error(msg="求购信息不存在")
	buying_lead_314011(314011),
	
	/*代理信息*/
	@Error(msg="招商信息不存在或者参数不全")
	agent_315001(315001),
	@Error(msg="代理区域名称名称不能为空或者大于32个字")
	agent_315002(315002),
	@Error(msg="留言不能为空或者大于128个字")
	agent_315003(315003),
	@Error(msg="电话名称不能为空或者电话格式不对")
	agent_315004(315004),
	@Error(msg="联系人不能为空或者大于32个字")
	agent_315005(315005),
	@Error(msg="必须选择代理单位类型")
	agent_315006(315006),
	@Error(msg="单位或个人名称不能为空或者大于64个字")
	agent_315007(315007),
	@Error(msg="最少选择一个销售渠道")
	agent_315008(315008),
	@Error(msg="销售渠道参数异常")                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
	agent_315009(315009),
	@Error(msg="验证码错误")                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
	agent_315010(315010),
	@Error(msg="你已经报名代理此招商信息")                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
	agent_315011(315011),
	
	/*交易流水*/
	@Error(msg="创建流水失败")
	deposit_313001(313001),
	
	/* 商品购买*/
	@Error(msg="请先登陆账号，再购买！")
	goods_operation_320001(320001),
	@Error(msg="超出经营范围，请购买经营范围内的商品！")
	goods_operation_320002(320002),
	@Error(msg="商品无法购买，仅限查看！")
	goods_operation_320003(320003),
	@Error(msg="商品不存在！")
	goods_operation_320004(320004),
	@Error(msg="库存数量不足！")
	goods_operation_320005(320005),
	
	/*合同*/
	@Error(msg="合同错误！")
	contract_330001(330001),
	
	/*往来客户*/
	@Error(msg="创建往来客户失败！")
	contact_member_350001(350001),
	
	/* 优惠券 */
	@Error(msg="优惠券定向发送参数错误！")
	coupon_340001(340001),
	@Error(msg="优惠券不存在！")
	coupon_340002(340002),
	@Error(msg="可发放的优惠券数量不足！")
	coupon_340003(340003),
	@Error(msg="定向发放红包不允许领取！")
	coupon_340004(340004),
	@Error(msg="每人限领一次，您已经领取过了！")
	coupon_340005(340005),
	@Error(msg="优惠券活动已经结束，下次请早！")
	coupon_340006(340006),
	@Error(msg="优惠券店铺的ID不能为空！")
	coupon_340007(340007),
	@Error(msg="供应商不能领取优惠券！")
	coupon_340008(340008),
	
	/**
	 * 财务管理
	 */
	@Error(msg="用户ID不能为空!")
	user_304001(304001),
	@Error(msg="用户密码不能为空")
	user_304002(304002),
	@Error(msg="用户密码长度为6-20个字符")
	user_304003(304003),
	@Error(msg="用户不存在")
	user_304004(304004),
	@Error(msg="账号不能为空")
	user_304005(304005),
	@Error(msg="手机号码不能为空")
	user_304006(304006),
	@Error(msg="账号已被注册")
	user_304007(304007),
	@Error(msg="手机号码已被注册")
	user_304008(304008),
	@Error(msg="账号不能大于20个字")
	user_304009(304009),
	@Error(msg="姓名不能为空")
	user_304010(304010),
	@Error(msg="姓名不能大于10个字")
	user_304011(304011),
	@Error(msg="密码不能为空")
	user_304012(304012),
	@Error(msg="密码不能大于20个字")
	user_304013(304013),
	@Error(msg="旧密码不正确")
	user_304014(304014),
	@Error(msg="旧密码不能为空")
	user_304015(304015),
	
	@Error(msg="旧密码不能为空")
	receipt_4000001(4000001),
	/**
	 * 全局
	 */
	@Error(msg="手机格式不正确！")
	global_900000(900000), 
	@Error(msg="传入的参数为空！")
	global_900001(900001), 
	@Error(msg="上传失败！")
	global_900002(900002),
	@Error(msg="获取图片地址失败！")
	global_900003(900003), 
	@Error(msg="数据不存在！")
	global_900004(900004), 
	@Error(msg="数据转换错误！")
	global_900005(900005), 
	@Error(msg="省市区不存在！")
	global_900006(900006),
	@Error(msg="备注长度过长！")
	global_900007(900007),
	@Error(msg="请先登录")
	global_900008(900008),
	@Error(msg="该图片地址路径不正确！")
	global_900009(900009),
	
	/**
	 * 线下转账
	 */
	
	@Error(msg="缴费回调失败！")
	payment_510005(510005),
	
	/**
	 * 文章库
	 */
	@Error(msg="文章标题不能为空！")
	article_600000(600000),
	@Error(msg="文章标题不能大于60个字！")
	article_600001(600001),
	@Error(msg="文章作者不能大于15个字！")
	article_600002(600002),
	@Error(msg="文章来源不能大于15个字！")
	article_600003(600003),
	@Error(msg="文章摘要不能大于64个字！")
	article_600004(600004),
	@Error(msg="文章封面不能大于120个字符！")
	article_600005(600005),
	@Error(msg="文章内容不能大于20000个字符！")
	article_600006(6000056);
	
	private int code;
	
	BECode(int code) {
		this.code = code;
	}
	
	public int getCode() {
		
		return code;
	}
	
	private String getName() {
		
		return this.name();
	}

	/**
	 * 返回错误信息
	 * @return
	 */
	public String getMessage() {
		Error error = null;
		try {
			error = this.getClass().getField(getName()).getAnnotation(Error.class);
		} catch (Exception e) {
			
			return null;
		}
		
		return error.msg();
	}
	
	/**
	 * 
	 */
	@Override
	public String toString() {
		String message = this.getMessage();

		return String.valueOf(this.getCode()).concat(SPLIT_CHAR).concat((StringUtil.isBlank(message)?"":message));
	}
	
	/**
	 * 返回错误码+动态错误信息
	 * @return
	 */
	@Override
	public String toDynamicString(Object...parameters) {
		
		return String.format(this.toString(), parameters);
	}
}
